#include<iostream>
#include<thread>
#include <mutex>

std::mutex mtx; // 全局互斥锁
int shared_data = 0; // 共享数据

void thread_function() {
    std::unique_lock<std::mutex> lock(mtx); // 使用 std::lock_guard 自动锁定互斥锁
    ++shared_data; // 修改共享数据
    std::cout << "Shared data: "<< shared_data<< std::endl;
    // 当 lock_guard 对象离开作用域时，它的析构函数会自动解锁互斥锁
}

int main() {
    std::thread t1(thread_function);
    std::thread t2(thread_function);

    t1.join();
    t2.join();

    return 0;
}